// components/custom-popup.ts
Component({

  /**
   * 组件的属性列表
   */
  properties: {
    visible: {
      type: Boolean,
      value: false,
      observer(newVal) {
        // 在这里处理值变化逻辑
        if (newVal) {
          this.startAnimation(true)
        }
      }
    },
  },

  /**
   * 组件的初始数据
   */
  data: {
    animation: null as any | null, // WechatMiniprogram.Animation
  },

  /**
   * 组件的方法列表
   */
  methods: {
    // 隐藏弹出层
    hidePopup() {
      this.startAnimation(false);
      setTimeout(() => {
        this.triggerEvent('hidePopup')
      }, 300); // 延迟以等待动画结束
    },
    // 开始动画
    startAnimation(show: boolean) {
      const animation = wx.createAnimation({
        duration: 300,
        timingFunction: "ease",
      });
      if (show) {
        animation.scale(1).step();
      } else {
        animation.scale(0).step();
      }
      this.setData({ animation: animation.export() });
    },
  }
})